package com.adou.d8.pool;

import com.adou.d8.thread.comm.ThreadTest;

/**
 * 执行Runnable任务
 */
import java.util.concurrent.*;

public class ThreadPoolTest1 {
    public static void main(String[] args) {
        // 1.通过ThreadPoolExecutor
        ExecutorService pool = new ThreadPoolExecutor(3, 5, 8, TimeUnit.SECONDS,
                new ArrayBlockingQueue<>(4), Executors.defaultThreadFactory(),
                new ThreadPoolExecutor.AbortPolicy());

        //
        Runnable target = new MyRunnable();
        pool.execute(target); // 线程池会自动创建一个线程，自动处理这个任务，自动执行
        pool.execute(target); // 线程池会自动创建一个线程，自动处理这个任务，自动执行
        pool.execute(target); // 线程池会自动创建一个线程，自动处理这个任务，自动执行
        pool.execute(target); // 复用前面线程

//        pool.shutdown();// 等待任务执行完毕，一般不关闭
        pool.shutdownNow();// 立即关闭，异常
    }
}
